iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0

每當我們在使用git的時候,我們查看每一條之前自己加入的紀錄:

git log --oneline

這個時候就可以看到自己之前所commit的內容,不過,maybe我們會覺得有點confuse在最前頭的b1a645f是什麼意思,嘿嘿,這個就有趣啦!

我們所看到的這些不知道是什麼的代碼,其實就是每一次commit的紀錄後git所賦予它的編號,它代表“紀錄”,其實有很多的文章,包括之前看過的為自己學Git,都大致上的說:其實這些編號,就像是貼紙一樣。

那....是怎麼樣的貼紙概念??

可以想像一個畫面,就是假如我在同一個分支上,commit了一次內容,這個時候就會產生一個貼紙,指著前面一個貼紙

像是這樣,應該還算好懂吧!

然後,只要我們commit了一次,就會產生一個貼紙,然後他會指著前面的貼紙。版本控制的原理基本上就是源自於這個原理。

HEAD,蝦款?

在上面可以看到一個東西,叫做HEAD,意思就是你現在正在的分支,總之,如果你轉移了branch,你會看到現在HEAD指著的東西也就不一樣了。

好啦,來Merge!

Merge的概念,就有點像是原本的家產被收割了這種感覺,或者換個比較有政治色彩的說法,就是PRC統了ROC,不是啦XD

Merge就是合併....well也對啦,「統」這個字眼就是在搞這件事情,

假設我今天正在master主分支上,我想要合併cat,這個時候指令如下:

git merge cat

這個時候可以回去看檔案,你大概會發現一件事情,就是cat新增的檔案,在master上就會全部都有,But,大家應該會好奇一個問題:

假設我今天merge了cat,那這樣cat會不見嗎?

NONO,並不會。

舉個例吧:
現在MJ是我的主分支:

git merge Julia

然後我要合併Julia這個分支

這個時候MJ這個主分支上就會增加一個Julia的檔案。

誰合併誰重要嗎?

如果你去問塔綠班這個問題,應該會有人跳腳,嘻嘻。如果你去問小粉紅這個問題,應該也是一樣XD

其實結果都一樣,但就是名義不一樣,但其實要認真來說,其實要看你要拿這次的合併做什麼?

總之,merge的實際意義,其實意思就像是:「之前只有你有,現在我們都有了!」,merge的指令會確保這一點。

不過說到這裡,大概點到為止啦XD
merge還有一些在合併上的小細節~有機會再寫文章來說吧

tags: 鐵人賽

上一篇
# Day24--開分支免費啦!超簡易開分支的方法
下一篇
# Day26--要移花接木就是要rebase~
系列文
Swift30天:從語法到觀念,告訴你在踏入實作前最好弄清楚的那些事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
wendy
iT邦新手 2 級 ‧ 2021-10-10 20:13:28

塔綠班和小粉紅xd

MJ iT邦新手 4 級 ‧ 2021-10-11 08:34:08 檢舉

嘻嘻XD

我要留言

立即登入留言